# 编译器设置
CXX := g++
CXXFLAGS := -std=c++17 -Wall -Wextra -pedantic -Wno-unknown-pragmas

# 目标可执行文件
TARGET := main

# 自动查找当前目录下所有 .cpp 文件
SRCS := $(wildcard *.cpp)

# 生成的目标文件（.o）
OBJS := $(SRCS:.cpp=.o)

# 默认目标
all: $(TARGET)

# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) $^ -o $@

# 编译每个 .cpp 文件为 .o 文件
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJS) $(TARGET)

.PHONY: all clean